Municipalities generally provide emergency services for their citizens in the event of local emergencies, including fire, flood, and inclement weather. Such services include police protection, fire protection, and emergency warning systems. Unfortunately, emergency situations often call for resources above and beyond those owned by the city encountering the emergency situation. Thus, municipalities often enter into agreements with neighboring communities to provide mutual assistance in the event of emergency situations requiring resources beyond the ability of one city to provide. These mutual assistance agreements typically state that the first city will share its emergency resources with the second city if the second city encounters an emergency situation which requires resources beyond those owned by the second city, and vice-versa.
One emergency warning device used by many municipalities today is the automated calling system. Automated calling systems automatically place telephone calls to city residents and warn them in the event of an emergency. For example, if a hazardous spill occurs within a city, the automated calling system may be used to warn residents of the hazardous spill. One automated calling system is described in U.S. Pat. No. 6,009,149, which is incorporated herein by reference. As described in U.S. Pat. No. 6,009,149, the automated calling system includes a database comprising phone numbers and one or more data fields associated with each phone number. The system selects certain phone numbers to be called based upon the data fields associated with the phone numbers. As each phone number is called, a recorded voice message is played to the individual receiving the call. The recorded voice message may be, for example, an emergency message warning the individual of an approaching storm, such as a tornado or hurricane.
A problem exists with these prior art automated calling systems because they are limited in capacity (i.e., the number of calls that may be placed per unit of time). Each system has only a certain number of lines that may be used to make calls. In addition, each call takes at least a minimum amount of time to complete because the call must be placed, answered by the callee (i.e., the person answering the phone), and the recorded warning message must be played. If there is a rapid response emergency (i.e., an emergency where a large number of individuals need to be contacted in a short amount of time), the system may not have the capacity to warn all individuals within the short warning time. For example, a large number of people in a particular area may need to be warned of the existence of a tornado within minutes after the tornado is spotted. If 500 homes need to be warned within a five minute time frame, and the system only has the capacity to warn 50 homes per minute, the system cannot possibly warn all 500 homes within the allotted 5 minute period. In these situations, it would be helpful to enlist the services of other nearby automated calling systems to help in placing the warning calls to homes at risk. To this end, a first automated calling system could place 250 calls in the five minute period, and a second automated system could place an additional 250 calls, thereby allowing all homes at risk to receive warning of the incoming storm. Such actions would be consistent with the mutual assistance agreements discussed previously. Unfortunately, there has previously been no mechanism in place to allow the automated calling systems of differing communities to combine their systems to reach more homes in a faster time in the event of an emergency.
For the foregoing reasons there is a need for a nodal automated calling system that may be shared between neighboring communities, pursuant to mutual assistance agreements. Such an automated calling system would be operable to enlisted the help of neighboring automated calling systems to efficiently distribute emergency messages to those individuals needing to receive the emergency message in a timely fashion.
The present invention is directed to a system that satisfies the need for an automated nodal calling system that may be used in conjunction with neighboring automated calling systems to efficiently distribute emergency messages to selected callees. The automated nodal calling system comprises a database having a plurality of phone numbers. Each of the plurality of phone numbers is associated with a data field containing information representing a particular geographic location. When calls are to be placed to callees using the automated nodal calling system, an operator records an audio message to be transmitted over the phone lines. The audio message is stored in a memory and delivered to each callee when a connection is established with the callee. To determine which callees will be contacted, a mapping device is used to define a calling area. Once the calling area is defined, a subset of phone numbers is selected from the database, each phone number having information in a data field representing a geographic location within the calling area. A number of call requests are then generated based on the selected subset of phone numbers. Each call request contains various pieces of information, including one of the phone numbers from the subset of phone numbers and the location of the audio file to be played to the callee. Other information important to proper completion of the phone call is included in each call request. All of the call requests are stored in a temporary file or xe2x80x9cqueue.xe2x80x9d
The system is designed to process the call requests from a local node or a remote node. The local node is the system node where the call request was first generated based on the defined calling area. The remote node is a distant node that receives the call request from the local node when the local node desires assistance from the remote node in completing the call request. The remote node generally contains the same or very similar features and functions as the remote node. Thus, the remote node may act as the local node for a different call request, and the local node may act as the remote node.
After a calling area is defined, an audio message is stored, and call requests are generated, the system may begin to process the call requests. After call requests are stored in the queue of the local node, a first call request is pulled from the queue and delivered to a local serving program. The local serving program determines whether to process the first call request from the local node or the remote node.
If the local serving program determines to process the first call request from the local node, the first call request is sent to a local template program. The local template program communicates with a telecommunications interface to access a phone line and initiate a phone call to the telephone number contained in the first call request. Once the phone call is placed, the template program generates a first call response based upon the result of the call and the response from the callee. The local template program sends the first call response to a local gate program. The local gate program generates a statement to update the first call request in the local temporary file or remove the first call request from the local temporary file. A statement instructing the temporary file to update the first call request is delivered directly to the local temporary file and executed against the local temporary file by the local gate program. A statement instructing the temporary file to remove the first call request from the temporary file is sent to a second temporary file. The local server program then removes the statement from the second temporary file and executes the statement against the local temporary file.
On the other hand, if the local serving program determines that the first call request should be processed by the remote node, the serving program communicates with a network interface to send the first call request to a remote node using a wide area network, such as the Internet. The remote node receives the first call request at a remote gate program, which operates similar to the local node gate program. Once the remote node gate program receives the first call request, the remote gate program generates a statement instructing the remote queue to insert the first call request into the remote queue. This statement is then sent to a second remote temporary file. A remote server file then receives this statement from the second remote temporary file and executes the statement against the remote queue. Of course, the phone number in the first call request will only be found in the database of the local node that sent the first call request to the remote node, and will not be found in the remote node""s database. Nevertheless, because all information required to initiate and complete a call to a particular phone number is included in the call request, the remote node may process the call request once the call request is stored in the remote queue. The method of processing the first call request in the remote queue is similar to that described above for processing the first call request in the local node. After a remote template program completes the call, a first call response is generated and delivered to the remote gate program. The remote gate program then generates a statement to remove the first call response from the remote queue. In addition, the remote gate program generates a statement for delivery to the local node, instructing the local node to update the first call request in the first temporary file or remove the first call request in the first temporary file.
The term xe2x80x9cfirst call requestxe2x80x9d is used herein as an example of one of many call requests which may be processed by the system. Of course, many other call requests may be simultaneously or subsequently processed by the system according to the same process and method used for the first call request. Furthermore, the above-described features, aspects and advantages of the present invention will become better understood with reference to the following description and the appended claims.